namespace ext.grid
{
	using System;
	using System.Runtime.CompilerServices;
	using System.Html;
	using System.Collections;
	
	
	/// <summary>
	/// A customized implementation of a {@link Ext.dd.DragZone DragZone} which provides default implementations of two of the
	/// template methods of DragZone to enable dragging of the selected rows of a GridPanel.  A cooperating {@link Ext.dd.DropZone DropZone} must be created who&apos;s template method implementations of
	/// {@link Ext.dd.DropZone#onNodeEnter onNodeEnter}, {@link Ext.dd.DropZone#onNodeOver onNodeOver},
	/// {@link Ext.dd.DropZone#onNodeOut onNodeOut} and {@link Ext.dd.DropZone#onNodeDrop onNodeDrop}  are able
	/// to process the {@link #getDragData data} which is provided.
	/// </summary>
	/// <htmlSummary>
	/// &lt;p&gt;A customized implementation of a {@link Ext.dd.DragZone DragZone} which provides default implementations of two of the
	/// template methods of DragZone to enable dragging of the selected rows of a GridPanel.&lt;/p&gt;
	/// &lt;p&gt;A cooperating {@link Ext.dd.DropZone DropZone} must be created who&apos;s template method implementations of
	/// {@link Ext.dd.DropZone#onNodeEnter onNodeEnter}, {@link Ext.dd.DropZone#onNodeOver onNodeOver},
	/// {@link Ext.dd.DropZone#onNodeOut onNodeOut} and {@link Ext.dd.DropZone#onNodeDrop onNodeDrop}&lt;/p&gt; are able
	/// to process the {@link #getDragData data} which is provided.
	/// </htmlSummary>
	/// <definedin>src\widgets\grid\GridDD.js</definedin>
	[ScriptName("GridDragZone")]
	[ScriptNamespace("Ext.grid")]
	[Imported()]
	public partial class GridDragZone : ext.dd.DragZone
	{
		
		#region Methods
		/// <summary>
		/// The provided implementation of the getDragData method which collects the data to be dragged from the GridPanel on mousedown.  This data is available for processing in the {@link Ext.dd.DropZone#onNodeEnter onNodeEnter}, {@link Ext.dd.DropZone#onNodeOver onNodeOver},
		/// {@link Ext.dd.DropZone#onNodeOut onNodeOut} and {@link Ext.dd.DropZone#onNodeDrop onNodeDrop} methods of a cooperating {@link Ext.dd.DropZone DropZone}.  The data object contains the following properties:  grid : Ext.Grid.GridPanel The GridPanel from which the data is being dragged.   ddel : htmlElement An htmlElement which provides the &quot;picture&quot; of the data being dragged.   rowIndex : Number The index of the row which receieved the mousedown gesture which triggered the drag.   selections : Array An Array of the selected Records which are being dragged from the GridPanel.
		/// </summary>
		/// <htmlSummary>
		/// &lt;p&gt;The provided implementation of the getDragData method which collects the data to be dragged from the GridPanel on mousedown.&lt;/p&gt;
		/// &lt;p&gt;This data is available for processing in the {@link Ext.dd.DropZone#onNodeEnter onNodeEnter}, {@link Ext.dd.DropZone#onNodeOver onNodeOver},
		/// {@link Ext.dd.DropZone#onNodeOut onNodeOut} and {@link Ext.dd.DropZone#onNodeDrop onNodeDrop} methods of a cooperating {@link Ext.dd.DropZone DropZone}.&lt;/p&gt;
		/// &lt;p&gt;The data object contains the following properties:&lt;ul&gt;
		/// &lt;li&gt;&lt;b&gt;grid&lt;/b&gt; : Ext.Grid.GridPanel&lt;div class=&quot;sub-desc&quot;&gt;The GridPanel from which the data is being dragged.&lt;/div&gt;&lt;/li&gt;
		/// &lt;li&gt;&lt;b&gt;ddel&lt;/b&gt; : htmlElement&lt;div class=&quot;sub-desc&quot;&gt;An htmlElement which provides the &quot;picture&quot; of the data being dragged.&lt;/div&gt;&lt;/li&gt;
		/// &lt;li&gt;&lt;b&gt;rowIndex&lt;/b&gt; : Number&lt;div class=&quot;sub-desc&quot;&gt;The index of the row which receieved the mousedown gesture which triggered the drag.&lt;/div&gt;&lt;/li&gt;
		/// &lt;li&gt;&lt;b&gt;selections&lt;/b&gt; : Array&lt;div class=&quot;sub-desc&quot;&gt;An Array of the selected Records which are being dragged from the GridPanel.&lt;/div&gt;&lt;/li&gt;
		/// &lt;/ul&gt;&lt;/p&gt;
		/// </htmlSummary>
		/// <definedin>src\widgets\grid\GridDD.js</definedin>
		[ScriptName("getDragData")]
		public void GetDragData()
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>
		/// The provided implementation of the onInitDrag method. Sets the innerHTML of the drag proxy which provides the &quot;picture&quot;
		/// of the data being dragged.  The innerHTML data is found by calling the owning GridPanel&apos;s {@link Ext.grid.GridPanel#getDragDropText getDragDropText}.
		/// </summary>
		/// <htmlSummary>
		/// &lt;p&gt;The provided implementation of the onInitDrag method. Sets the &lt;tt&gt;innerHTML&lt;/tt&gt; of the drag proxy which provides the &quot;picture&quot;
		/// of the data being dragged.&lt;/p&gt;
		/// &lt;p&gt;The &lt;tt&gt;innerHTML&lt;/tt&gt; data is found by calling the owning GridPanel&apos;s {@link Ext.grid.GridPanel#getDragDropText getDragDropText}.&lt;/p&gt;
		/// </htmlSummary>
		/// <definedin>src\widgets\grid\GridDD.js</definedin>
		[ScriptName("onInitDrag")]
		public void OnInitDrag()
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>
		/// An empty immplementation. Implement this to provide behaviour after a repair of an invalid drop. An implementation might highlight
		/// the selected rows to show that they have not been dragged.
		/// </summary>
		/// <definedin>src\widgets\grid\GridDD.js</definedin>
		[ScriptName("afterRepair")]
		public void AfterRepair()
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>An empty implementation. Implement this to provide coordinates for the drag proxy to slide back to after an invalid drop.  Called before a repair of an invalid drop to get the XY to animate to.</summary>
		/// <htmlSummary>
		/// &lt;p&gt;An empty implementation. Implement this to provide coordinates for the drag proxy to slide back to after an invalid drop.&lt;/p&gt;
		/// &lt;p&gt;Called before a repair of an invalid drop to get the XY to animate to.&lt;/p&gt;
		/// </htmlSummary>
		/// <definedin>src\widgets\grid\GridDD.js</definedin>
		/// <param name="e">The mouse up event</param>
		/// <returns>The xy location (e.g. [100, 200])</returns>
		[ScriptName("getRepairXY")]
		public System.Array GetRepairXY(ext.EventObject e)
		{
			throw new System.Exception("Imported - not implemented");
		}
		#endregion
	}
}
